This invention relates to an interrupt management technology employed in a case where virtualization software is used for a computer including a multicore CPU or having a multiprocessor configuration.
In recent years, for a storage apparatus used in a company, importance is put on not only access performance of each storage apparatus but also cost performance such as low price, energy savings, and space savings. Up to now, an individual dedicated storage apparatus is provided depending on a kind of access interface (I/F) or a protocol. However, in recent years, a unified storage apparatus including access I/Fs of both a storage area network (SAN) and a local area network (LAN) has been emerging, and high cost performance thereof has been attracting attention.
In the unified storage apparatus, it is necessary to simultaneously operate both a block server operating system (OS) for processing a block access (HDD access method on a sector basis) from a storage area network interface (SAN I/F) within the same casing and a file server OS for processing a file access (data access method on a file basis) from a local area network interface (LAN I/F). For example, virtualization software is known as means for realizing simultaneous operations of a plurality of OSes on a single computer.
The virtualization software is a technology that has been used mainly for the server apparatus, and generates a plurality of logical partitions on a single computer. Individual OSes can be independently executed in the respective logical partitions, and hence the simultaneous operations thereof can be realized by generating two logical partitions within the unified storage apparatus, simultaneously operating the block server OS in one logical partition and the file server OS in the other logical partition, and coupling the two through a virtual communication channel.
A main role of the virtualization software is to manage correspondences between physical resources (processor, memory, and I/O device) of the computer and the logical partition. In order to manage the physical resources, the virtualization software constantly monitors a usage situation of a central processing unit (CPU) time in the logical partition, a communication situation involving an interrupt, and the like, and, when access is made to resources more than the resources allocated to a guest OS in the logical partition, suppresses the access or substitutes processing. Considerable deterioration in performance (overhead) occurs when the entire processing is performed by software, and hence a CPU manufactured by Intel Corporation in recent years has a function dedicated to hardware support of the management of the physical resources performed by the virtualization software, for example, a virtualization technology for Xeon (VT-x) disclosed in Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3C: System Programming Guide, Part 3, Intel Corp, issued June 2013, pp. 29-13, 14 (hereinafter referred to as “Non patent Literature 1”). In the following description, the function of this kind is referred to as “hardware-assisted virtualization”.
However, in the case of the storage apparatus, in particular, the block server OS receives access from a database server or the like, and is therefore demanded to have high responsiveness (low access latency) on the order of several tens of microseconds. Even for the unified storage apparatus, the customer that mainly uses the SAN tends to demand higher performance. In addition, also for the file server OS, it is conceivable that data processing request per unit time increases as progress is made in use and utilization of big data.
Therefore, when the virtualization software is applied to the storage apparatus, it is necessary to utilize the above-mentioned hardware-assisted virtualization to a maximum level and to minimize the overhead ascribable to virtualization as disclosed in, for example, US 2011/0161541 and US 2010/0223611. However, as a main cause of the overhead ascribable to the current virtualization software, there is a substitution of communication processing performed by an interrupt. In the case of using the virtualization software, when the interrupt is transmitted, the virtualization software undergoes three steps of (1) an occurrence of a physical interrupt, (2) reception of the physical interrupt, and (3) generation of a logical interrupt, and notifies an interrupt handler of the OS in the logical partition of the interrupt.